package com.lanchetech.admin.service;

import com.lanchetech.bean.request.CountByTimeReq;
import com.lanchetech.bean.request.OrderPageReq;
import com.lanchetech.bean.request.OrderPayReq;
import com.lanchetech.bean.response.*;
import com.lanchetech.bean.vo.BigDecimalCountByDateVO;
import com.lanchetech.bean.vo.LongCountByDateVO;
import com.lanchetech.bean.vo.OrderDataStatisticsVO;
import com.lanchetech.bean.vo.OrderPayVO;
import com.lanchetech.entity.Orders;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface OrderService {
    ResultData<BasePageResp<OrderResp>> getOrderPage(OrderPageReq req);

    void exportOrderExcel(OrderPageReq req, HttpServletResponse response) throws IOException;

    ResultData<OrderResp> getOrderDetail(Long id);

    BaseResp editOrderLogistics(Orders orders);

    BaseResp editOrderRemark(Orders orders);

    String refundNotify(String xmlData);

    ResultData<BasePageResp<OrderPayVO>> getAnotherPayOrderPage(OrderPayReq req);

    ResultData<OrderDataStatisticsVO> getOrderStatistics(OrderPageReq req);

    ResultData<List<LongCountByDateVO>> getOrdersCount(CountByTimeReq req);

    ResultData<List<BigDecimalCountByDateVO>> getPayAmountCount(CountByTimeReq req);
}